cmake_minimum_required(VERSION 3.10.0)
project(minesweeper VERSION 0.1.0 LANGUAGES C)

#debug模式
SET(CMAKE_BUILD_TYPE Debug) #debug模式
#SET(CMAKE_BUILD_TYPE Release) #Release模式

#暂时不管，测试
include(CTest)
enable_testing()

# 2.需要的依赖库
# 设置源文件
set(SOURCES
    src/map.c
)

# 3.设置可执行文件与链接库保存的路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

# 4.设置头文件目录使得系统可以找到对应的头文件
include_directories(
${PROJECT_SOURCE_DIR}/inc  #自己目录的头文件
${EIGEN3_INCLUDE_DIR}  #其他系统目录的头文件 也可以直接写路径/usr/include/eigen3
${Pangolin_INCLUDE_DIRS}
)

# 5.编译动态库并链接库文件
# 创建静态库
# add_library(linked_list_static STATIC ${SOURCES})
#共享库(动态库)
# add_library(linked_list_shared SHARED ${SOURCES})

# 设置 rpath 仅对共享库生效
# set_target_properties(linked_list_shared PROPERTIES
#     INSTALL_RPATH "\$ORIGIN"
#     BUILD_WITH_INSTALL_RPATH TRUE
# )

# 6.生成可执行文件
#选择需要编译的源文件，有几个文件写几个
# add_executable(main src/main.c)
# 扫描src目录下的所有C文件
aux_source_directory(src SRC_FILES)
add_executable(main ${SRC_FILES})
# 链接共享库    
# target_link_libraries(main 
#     ${PROJECT_SOURCE_DIR}/lib/liblinked_list.so
# )

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})

#配置cmake项目c语言的版本 11
set(CMAKE_C_STANDARD 11)
# 设置交叉编译器的位置
set(CMAKE_C_COMPILER gcc)
include(CPack)



